package com.diandi.activity.bean;

import com.alibaba.fastjson.annotation.JSONField;
import com.diandi.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;

/**
 * 活动表
 * 
 */
public class Activity extends BaseEntity {

	private static final long serialVersionUID = 6901684964701402612L;
	// 标题 /活动内容
	private String title;
	// 奖励时点
	private Integer rewardPoint;
	// 介绍 /赠卷原因
	private String introduction;
	// 注册开始时间
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JSONField(format = "yyyy-MM-dd HH:mm:ss")
	private Date registerStart;
	// 注册结束时间
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JSONField(format = "yyyy-MM-dd HH:mm:ss")
	private Date registerEnd;
	// 发布平台(1PC,2APP,3微信)
	private Integer publishPlatform;
	// 状态(0未生效1生效2失效)
	private Integer status;
	// 活动规则ID
	private Long ruleId;
	// 备注
	private String memo;
	// 操作人id
	private Long staffId;
	/**
	 * 赠送人数
	 */
	private int ticketDetailUseNum;
	/**
	 * 红包金额
	 */
	private Double amount;
	/**
	 * 操作人昵称
	 */
	private String staffRealName;
	/**
	 * 导入专用(发放用户id集合)
	 */
	private String userIdStr;
	/**
	 * 是否已经发送短信和站内信的标志
	 */
	private int sendMsgFlag;

	/**
	 * 发布平台(1-PC,2-触屏版,3-客户端)
	 */
	private String publishPlatforms;

	/**
	 * (可投标类型1-新手标,2-活期宝,3-优选计划,4-散标)
	 */
	private String borrowTypes;

	/**
	 * 投资类型 1单次投资2总投资
	 */
	private Integer investType;

	/**
	 * 投资金额
	 */
	private Double investAmount;

	/**
	 * 奖池Id
	 */
	private Long ticketId;

	/**
	 * 获得返利的天数
	 */
	private Integer rebateDays;

	/**
	 * 返利比例
	 */
	private Double rebateRate;

	/**
	 * 活动规则
	 */
	private String rule;

	/**
	 * PC落地页链接
	 */
	private String pcLink;

	/**
	 * 触屏版落地页链接
	 */
	private String h5Link;

	/**
	 * 邀请文案
	 */
	private String inviteCopy;

	/**
	 * 已经发放的奖券的数量
	 */
	private Integer send;

	/**
	 * 奖券总数量
	 */
	private Integer generateNum;

	/**
	 * 奖券总数量
	 */
	private String sendSituation;

	/**
	 * 失效原因
	 */
	private Integer invalidReason;

	// 注册结束时间
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@JSONField(format = "yyyy-MM-dd")
	private Date registerEndInvite;

	/**
	 * 每个活动所对应的奖池
	 */
	private List<LotteryTicket> tickets;

	/**
	 * 微信发送状态1是0否
	 */
	private Integer weixinSendStatus;
	/**
	 * app 活动规则链接
	 */
	private String appRuleLink;

	/**
	 * ios落地页链接
	 */
	private String iosLink;

	/**
	 * 安卓落地页链接
	 */
	private String androidLink;

	/**
	 * 邀请节点(1注册2实名认证3绑卡4充值5首投)
	 */
	private Integer inviteNode;

	/**
	 * 投资标的月份
	 */
	private Integer investMonth;

	private Long oldActivityId;

	public Long getOldActivityId() {
		return oldActivityId;
	}

	public void setOldActivityId(Long oldActivityId) {
		this.oldActivityId = oldActivityId;
	}

	public Integer getVersion() {
		return version;
	}

	public void setVersion(Integer version) {
		this.version = version;
	}

	private Integer version;

	public String getStaffRealName() {
		return staffRealName;
	}

	public void setStaffRealName(String staffRealName) {
		this.staffRealName = staffRealName;
	}

	public Double getAmount() {
		return amount;
	}

	public void setAmount(Double amount) {
		this.amount = amount;
	}

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public Integer getRewardPoint() {
		return rewardPoint;
	}

	public void setRewardPoint(Integer rewardPoint) {
		this.rewardPoint = rewardPoint;
	}

	public String getIntroduction() {
		return introduction;
	}

	public void setIntroduction(String introduction) {
		this.introduction = introduction;
	}

	public Date getRegisterStart() {
		return registerStart;
	}

	public void setRegisterStart(Date registerStart) {
		this.registerStart = registerStart;
	}

	public Date getRegisterEnd() {
		return registerEnd;
	}

	public void setRegisterEnd(Date registerEnd) {
		this.registerEnd = registerEnd;
	}

	public Integer getPublishPlatform() {
		return publishPlatform;
	}

	public void setPublishPlatform(Integer publishPlatform) {
		this.publishPlatform = publishPlatform;
	}

	public Integer getStatus() {
		return status;
	}

	public void setStatus(Integer status) {
		this.status = status;
	}

	public Long getRuleId() {
		return ruleId;
	}

	public void setRuleId(Long ruleId) {
		this.ruleId = ruleId;
	}

	public String getMemo() {
		return memo;
	}

	public void setMemo(String memo) {
		this.memo = memo;
	}

	public Long getStaffId() {
		return staffId;
	}

	public void setStaffId(Long staffId) {
		this.staffId = staffId;
	}

	public int getTicketDetailUseNum() {
		return ticketDetailUseNum;
	}

	public void setTicketDetailUseNum(int ticketDetailUseNum) {
		this.ticketDetailUseNum = ticketDetailUseNum;
	}

	public String getUserIdStr() {
		return userIdStr;
	}

	public void setUserIdStr(String userIdStr) {
		this.userIdStr = userIdStr;
	}

	public int getSendMsgFlag() {
		return sendMsgFlag;
	}

	public void setSendMsgFlag(int sendMsgFlag) {
		this.sendMsgFlag = sendMsgFlag;
	}

	public String getPublishPlatforms() {
		return publishPlatforms;
	}

	public void setPublishPlatforms(String publishPlatforms) {
		this.publishPlatforms = publishPlatforms;
	}

	public String getBorrowTypes() {
		return borrowTypes;
	}

	public void setBorrowTypes(String borrowTypes) {
		this.borrowTypes = borrowTypes;
	}

	public Integer getInvestType() {
		return investType;
	}

	public void setInvestType(Integer investType) {
		this.investType = investType;
	}

	public Double getInvestAmount() {
		return investAmount;
	}

	public void setInvestAmount(Double investAmount) {
		this.investAmount = investAmount;
	}

	public Long getTicketId() {
		return ticketId;
	}

	public void setTicketId(Long ticketId) {
		this.ticketId = ticketId;
	}

	public Integer getRebateDays() {
		return rebateDays;
	}

	public void setRebateDays(Integer rebateDays) {
		this.rebateDays = rebateDays;
	}

	public Double getRebateRate() {
		return rebateRate;
	}

	public void setRebateRate(Double rebateRate) {
		this.rebateRate = rebateRate;
	}

	public String getRule() {
		return rule;
	}

	public void setRule(String rule) {
		this.rule = rule;
	}

	public String getPcLink() {
		return pcLink;
	}

	public void setPcLink(String pcLink) {
		this.pcLink = pcLink;
	}

	public String getH5Link() {
		return h5Link;
	}

	public void setH5Link(String h5Link) {
		this.h5Link = h5Link;
	}

	public String getInviteCopy() {
		return inviteCopy;
	}

	public void setInviteCopy(String inviteCopy) {
		this.inviteCopy = inviteCopy;
	}

	public Date getRegisterEndInvite() {
		return registerEndInvite;
	}

	public void setRegisterEndInvite(Date registerEndInvite) {
		this.registerEndInvite = registerEndInvite;
	}

	public Integer getSend() {
		return send;
	}

	public void setSend(Integer send) {
		this.send = send;
	}

	public Integer getGenerateNum() {
		return generateNum;
	}

	public void setGenerateNum(Integer generateNum) {
		this.generateNum = generateNum;
	}

	public String getSendSituation() {
		return sendSituation;
	}

	public void setSendSituation(String sendSituation) {
		this.sendSituation = sendSituation;
	}

	public Integer getInvalidReason() {
		return invalidReason;
	}

	public void setInvalidReason(Integer invalidReason) {
		this.invalidReason = invalidReason;
	}

	public List<LotteryTicket> getTickets() {
		return tickets;
	}

	public void setTickets(List<LotteryTicket> tickets) {
		this.tickets = tickets;
	}

	public Integer getWeixinSendStatus() {
		return weixinSendStatus;
	}

	public void setWeixinSendStatus(Integer weixinSendStatus) {
		this.weixinSendStatus = weixinSendStatus;
	}

	public String getAppRuleLink() {
		return appRuleLink;
	}

	public void setAppRuleLink(String appRuleLink) {
		this.appRuleLink = appRuleLink;
	}

	public String getIosLink() {
		return iosLink;
	}

	public void setIosLink(String iosLink) {
		this.iosLink = iosLink;
	}

	public String getAndroidLink() {
		return androidLink;
	}

	public void setAndroidLink(String androidLink) {
		this.androidLink = androidLink;
	}

	public Integer getInviteNode() {
		return inviteNode;
	}

	public void setInviteNode(Integer inviteNode) {
		this.inviteNode = inviteNode;
	}

	public Integer getInvestMonth() {
		return investMonth;
	}

	public void setInvestMonth(Integer investMonth) {
		this.investMonth = investMonth;
	}

}
